package work.month06.day03;

import java.util.Calendar;
import java.util.Date;
import java.util.Random;

/**
 * @date 2020/06/03
 * @author 王光浩
 * @need 对日期数组的排序
 */
public class DateSort1 {

	public static void main(String[] args) {

		final Random random = new Random();

		final Calendar calendar = Calendar.getInstance();

		final Date[] dates = new Date[5];

		// 1.使用循环对 dates 数组进行初始化
		for (int i = 0; i < dates.length; i++) {
			//随机设置 年、月、日、时、分、秒
			calendar.set(random.nextInt(3000), random.nextInt(12), random.nextInt(30), random.nextInt(24), random.nextInt(60), random.nextInt(60));
			// 随后使用 calendar 的 getTime 来获取 Date 实例
			Date date = calendar.getTime();
			dates[i] = date;
		}
		// 2.使用循环输出排序前的日期
		System.out.println("排序前的日期");
		for (int i = 0; i < dates.length; i++) {
			System.out.println("第" + (i+1) + "日期时间：" + dates[i]);
		}
		// 3.使用 Date 类提供的方法，对日期进行比较并排序
		for (int i = 0; i < dates.length-1; i++) {
			for (int j = 0; j < dates.length -i -1; j++) {
				if (dates[j].after(dates[j+1])) {
					Date tem = dates[j];
					dates[j] = dates[j+1];
					dates[j+1] = tem;
				}
			}
		}		
		// 使用循环输出排序后的日期
		System.out.println("排序后的日期");
		for (int i = 0; i < dates.length; i++) {
			System.out.println("第" + (i+1) + "日期时间：" + dates[i]);
		}
	}

}
